local ClientOHOH = _G.ClientOHOH;

local M = ClientOHOH.class.new(script, ClientOHOH.files.BaseObject());
local CallBackManager = ClientOHOH.load.CallBackManager();


gSelectInsts={
    root="ctrl.content.contentFrame",--更节点
    icon ="ctrl.content.icon",--武器图片
    titleBg ="ctrl.content.color_title",--称号背景色控制
    title ="ctrl.content.title",--称号
    name="ctrl.content.name",--名字
    value="ctrl.content.value",--攻击力
    bg="ctrl.content.bg",-- 称号背景色
    equip="ctrl.content.btn_equip", --装备按钮
    equipText="ctrl.content.btn_equip_text", 
    level="ctrl.content.lv", --等级

    -- merge="ctrl.content.btn_make",--合成按钮
}

gMergeUiInsts={
    icon ="ctrl.fuse.icon",--武器图片
    titleBg ="ctrl.fuse.color_title",--称号背景色控制
    title ="ctrl.fuse.title",--称号
    name="ctrl.fuse.name",--名字
    value="ctrl.fuse.value",--攻击力
    bg="ctrl.fuse.bg",-- 称号背景色
    level="ctrl.fuse.level",-- 下一个dengji

    list={
        [1]="ctrl.fuse.Item3.1",
        [2]="ctrl.fuse.Item3.2",
        [3]="ctrl.fuse.Item3.3",
    },
    merge={
        icon="ctrl.fuse.merg.icon",-- 消耗图标
        -- btn="ctrl.fuse.merg.btn",--按钮
        price="ctrl.fuse.merg.Value",--价格
        -- cancel="ctrl.fuse.merg.cancel",-- 取消合成
    }
}



function M.new(...)
	return M(...);
end;


function M.ctor(self,ctrl)

    self.ctrl=ctrl
    self.normalUi=ctrl:InitUiInst2(ctrl.main_inst,gSelectInsts)
    self.mergeUi=ctrl:InitUiInst2(ctrl.main_inst,gMergeUiInsts)

    self:SetNormalUiShow(false)
    self:SetMergeUiShow(false)

    self.MergeCellList={}

	M.super.ctor(self);

end;


function M.dtor(self)
	M.super.dtor(self);
end;

--显示某一项数据
function M.Show(self,cell)

    if self.cell then --旧的选中cell，取消选中状态
        self.cell:NoActive()
    end

    if  self.UpdateConnect then
        self.UpdateConnect:Disconnect()
        self.UpdateConnect=nil
    end

    self.normalUi.root.Visible=true

    cell:Active()
    self.data=cell:GetData()
    self.cell=cell

    self.normalUi.icon.Image=self.data.icon
    self.normalUi.titleBg.BackgroundColor3=self.ctrl:getBgColorByTitleId(self.data.titleId)
    self.normalUi.bg.BackgroundColor3=self.ctrl:getBgColorByTitleId(self.data.titleId)
    self.normalUi.title.Text=self.data.title
    self.normalUi.name.Text=self.data.name
    self.normalUi.value.Text=math.floor(self.data.value)
    self.normalUi.level.Text=self.data.level

   self.UpdateConnect= self.cell:GetData().UpdateEvent:Connect(function()
        if self.cell then
            self:UpdateEquipStateText(self.cell:IsEquiped())
        end
         
    end)
    self:UpdateEquipStateText(self.cell:IsEquiped())

    self.mergeUi.icon.Image=self.data.icon
    self.mergeUi.titleBg.BackgroundColor3=self.ctrl:getBgColorByTitleId(self.data.titleId)
    self.mergeUi.title.Text=self.data.title
    self.mergeUi.name.Text=self.data.name
    self.mergeUi.value.Text=math.floor(self.data.nextValue)
    self.mergeUi.bg.BackgroundColor3=self.ctrl:getBgColorByTitleId(self.data.titleId)
    self.mergeUi.level.Text=self.data.level+1
    for k,v in pairs(self.data.merge) do
        self.mergeUi.merge.icon.Image=_G.CommonOHOH.load.ItemTool().GetItemShowView(k)
        self.mergeUi.merge.price.Text=_G.ClientOHOH.load.BigNumberHelper():ToString(v)
    end
end



--获取被选中的cell
function M.GetSelectCell(self)
    return self.cell
end

function M.UpdateEquipStateText(self,isEquip)
    if isEquip then
        self.normalUi.equipText.Text="Equiped"
    else
        self.normalUi.equipText.Text="Equip"
    end
end


--清空合成信息
function M. ClearMerge(self)
    for _,c in pairs(self.MergeCellList) do
        c:NoActive()
    end
    self.MergeCellList={}
end


function M.RemoveMergeCell(self,cell)
    for i,c in pairs(self.MergeCellList) do 
        if c==cell then
             cell:NoActive()
             table.remove(self.MergeCellList,i)
             self:UpdateMergeUi()
             return 
        end
     end
end

function M.MergeIsHad(self,cell)

    for _,c in pairs(self.MergeCellList) do
        if c==cell then --已经存在
            return true
        end
    end
    return false
end

function M.AddMergeCell(self,cell)

    if #self.MergeCellList==3 then --满了
        return 
    end

     table.insert(self.MergeCellList,cell) --加入合成列表
     cell:Active()
     self:UpdateMergeUi()
  
end

function M.UpdateMergeUi(self)
    for _,icon in pairs(self.mergeUi.list) do --更新合成显示
        icon.Image=""
     end
    for i,c in pairs(self.MergeCellList) do --更新合成显示
        local data=c:GetData()
        self.mergeUi.list[i].Image=data.icon
     end
end


--获取合成数据
function M.GetMergeData(self)
    local list={}
    for _,c in pairs(self.MergeCellList) do
        table.insert(list,c:GetData())
    end
    return list
end

function M.SetNormalUiShow(self,isShow)

    self.normalUi.root.Visible=isShow
end 

function M.SetMergeUiShow(self,isShow)
    self.mergeUi.root.Visible=isShow
end 


--关闭显示信息
function M.Close(self)
    if self.cell then
        self.cell:NoActive()
    end

    self.cell=nil
    self.data=nil
end


return M